<?php
/*
 * AA : 
 * Helper d'action contenant des fonctions réutisables peut importe le contrôleur
 *		Contient aussi des constantes
 * Un Helper d'action est automatiquement instancié et accessible pour chaque contrôleurs par $this->_helper->Environment->nom_fonction + variables
 * En revanche pour utiliser dans la vue ou formulaire, soit appeler le résultat dans le contrôleur puis faire descendre le param, soit instancié l'objet directement.
 * Dés lors, les méthodes preDispatch et postDispatch propres aux helpers d'actions perdent leurs utilités.
 *
 * Pour le détail preDispatch et postDispatch se reporter à http://www.kitpages.fr/fr/cms/28/plugins-et-helpers-du-mvc-du-zend-framework
 */

class Application_Helper_Environment extends Zend_Controller_Action_Helper_Abstract{
    // Trad fr pour formulaires
    public $tab_translate_french = array( 'notAlnum' => "'%value%' ne contient pas que des lettres et/ou des chiffres.",
                                            'notAlpha' => "'%value%' ne contient pas que des lettres.",
                                            'notBetween' => "'%value%' n'est pas compris entre %min% et %max% inclus.",
                                            'notBetweenStrict' => "'%value%' n'est pas compris entre %min% et %max% exclus.",
                                            'dateNotYYYY-MM-DD'=> "'%value%' n'est pas une date au format AAAA-MM-JJ (exemple : 2000-12-31).",
                                            'dateInvalid' => "'%value%' n'est pas une date valide.",
                                            'dateFalseFormat' => "'%value%' n'est pas une date valide au format JJ/MM/AAAA (exemple : 31/12/2000).",
                                            'notDigits' => "'%value%' ne contient pas que des chiffres.",
                                            'emailAddressInvalid' => "'%value%' n'est pas une adresse mail valide selon le format adresse@domaine.",
                                            'emailAddressInvalidHostname' => "'%hostname%' n'est pas un domaine valide pour l'adresse mail '%value%'.",
                                            'emailAddressInvalidMxRecord' => "'%hostname%' n'accepte pas l'adresse mail '%value%'.",
                                            'emailAddressDotAtom' => "'%localPart%' ne respecte pas le format dot-atom.",
                                            'emailAddressQuotedString' => "'%localPart%' ne respecte pas le format quoted-string.",
                                            'emailAddressInvalidLocalPart' => "'%localPart%' n'est pas une adresse individuelle valide.",
                                            'notFloat' => "'%value%' n'est pas un nombre dÃ©cimal.",
                                            'notGreaterThan' => "'%value%' n'est pas strictement supÃ©rieur Ã  '%min%'.",
                                            'notInt'=> "'%value%' n'est pas un nombre entier.",
                                            'notLessThan' => "'%value%' n'est pas strictement infÃ©rieur Ã  '%max%'.",
                                            'isEmpty' => "Le renseignement de ce champ est requis.",
                                            'stringEmpty' => "Le renseignement de ce champ est requis.",
                                            'regexNotMatch' => "'%value%' ne respecte pas le format '%pattern%'.",
                                            'stringLengthTooShort' => "'%value%' fait moins de %min% caractÃ¨res.",
                                            'stringLengthTooLong' => "'%value%' fait plus de %max% caractÃ¨res.",
                                            'noRecordFound' => "'%value%' n\'existe pas.",
                                            'recordFound' => "'%value%' existe dÃ©jÃ ."
                                    );	    
    
	public function preDispatch() {
	}
	
	
	
	/*
	* Proxy vers la fonction acl is allowed function
	*/
	public function isAllowed($resource, $actions) {  
		$this->_acl = Zend_Registry::get('ACL') ;  
		$this->_auth = Zend_Auth::getInstance() ;  
		
		// contrôle si l'utilisateur est authentifié  
		if ($this->_auth->hasIdentity()) {  
			// yes ! on récupère son role  
			$user = $this->_auth->getStorage()->read() ;  
			$role = $user['role'] ;  
		} else {  
                    // non = invité  
                    $role = 'Invite';  
		}  
		
		// contrôle si l'utilisateur est autorisé  
		return $this->_acl->isAllowed($role, $resource, $actions) ;
		
	}
}
?>

